package twobranchsearch.isbalanced;

import twobranchTree.preorderTraversal.TreeNode;

/**
 * @Date 2020/03/15
 * @author 王光浩 
 * @Thinking 使用递归方式，自顶向下。
 * @Analysis 时间复杂度O（nlogn），空间复杂度O（nlogn）
 */
public class MyMethodTwo {
	//获取节点的深度
	private int depth(TreeNode root) {
		if(root==null)return 0;
		return Math.max(depth(root.left), depth(root.right));
	}
	public boolean isBalanced(TreeNode root) {
        if (root == null) return true;
        return Math.abs(depth(root.left) - depth(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right);
    }

}
